home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / smb_fs_sb.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  102 lines

  1. /*
  2.  *  smb_fs_sb.h
  3.  *
  4.  *  Copyright (C) 1995 by Paal-Kr. Engstad and Volker Lendecke
  5.  *  Copyright (C) 1997 by Volker Lendecke
  6.  *
  7.  */
  8.  
  9. #ifndef _SMB_FS_SB
  10. #define _SMB_FS_SB
  11.  
  12. #ifdef __KERNEL__
  13.  
  14. #include <linux/types.h>
  15. #include <linux/smb.h>
  16.  
  17. /*
  18.  * Upper limit on the total number of active smb_request structs.
  19.  */
  20. #define MAX_REQUEST_HARD       256
  21.  
  22. enum smb_receive_state {
  23.     SMB_RECV_START,        /* No data read, looking for length + sig */
  24.     SMB_RECV_HEADER,    /* Reading the header data */
  25.     SMB_RECV_HCOMPLETE,    /* Done with the header */
  26.     SMB_RECV_PARAM,        /* Reading parameter words */
  27.     SMB_RECV_DATA,        /* Reading data bytes */
  28.     SMB_RECV_END,        /* End of request */
  29.     SMB_RECV_DROP,        /* Dropping this SMB */
  30.     SMB_RECV_REQUEST,    /* Received a request and not a reply */
  31. };
  32.  
  33. /* structure access macros */
  34. #define server_from_inode(inode) SMB_SB((inode)->i_sb)
  35. #define server_from_dentry(dentry) SMB_SB((dentry)->d_sb)
  36. #define SB_of(server) ((server)->super_block)
  37.  
  38. struct smb_sb_info {
  39.     /* List of all smbfs superblocks */
  40.     struct list_head entry;
  41.  
  42.         enum smb_conn_state state;
  43.     struct file * sock_file;
  44.     int conn_error;
  45.     enum smb_receive_state rstate;
  46.  
  47.     atomic_t nr_requests;
  48.     struct list_head xmitq;
  49.     struct list_head recvq;
  50.     u16 mid;
  51.  
  52.         struct smb_mount_data_kernel *mnt;
  53.  
  54.     /* Connections are counted. Each time a new socket arrives,
  55.      * generation is incremented.
  56.      */
  57.     unsigned int generation;
  58.     pid_t conn_pid;
  59.     struct smb_conn_opt opt;
  60.     wait_queue_head_t conn_wq;
  61.     int conn_complete;
  62.     struct semaphore sem;
  63.  
  64.     unsigned char      header[SMB_HEADER_LEN + 20*2 + 2];
  65.     u32                header_len;
  66.     u32                smb_len;
  67.     u32                smb_read;
  68.  
  69.         /* We use our own data_ready callback, but need the original one */
  70.         void *data_ready;
  71.  
  72.     /* nls pointers for codepage conversions */
  73.     struct nls_table *remote_nls;
  74.     struct nls_table *local_nls;
  75.  
  76.     struct smb_ops *ops;
  77.  
  78.     struct super_block *super_block;
  79. };
  80.  
  81. static inline int
  82. smb_lock_server_interruptible(struct smb_sb_info *server)
  83. {
  84.     return down_interruptible(&(server->sem));
  85. }
  86.  
  87. static inline void
  88. smb_lock_server(struct smb_sb_info *server)
  89. {
  90.     down(&(server->sem));
  91. }
  92.  
  93. static inline void
  94. smb_unlock_server(struct smb_sb_info *server)
  95. {
  96.     up(&(server->sem));
  97. }
  98.  
  99. #endif /* __KERNEL__ */
  100.  
  101. #endif
  102.